Project 2  1
Progect2: Описание

На основе задания машграфа опробированы векторное расширение процессора и система документации Doxygen.

SSE использван в применении филтров Собеля (оператор свертки): task2.cpp -> std::vector<float> calculateHog(BMP &img) и вычислении нормы градиента: usual.cpp -> double ConvolutionOpSse::operator()(const Matrix<double> &neighbourhood) const Производительность была замерена на надоре картинок из задания по машграфу. На этих 345 файлах суммароное время вычисления дескриптора составило (среднее по 3 запускам):

  • 0.3636 – SSE [0.001053 per image]
  • 0.3490 – original [0.001011 per image] Отсутствие выигрыша обосновывается дополнительными временными затрарами на загрузку данных в m128d переменные и выгрузку обратно в double. А 2 пременных за одну интсрукцию – не столь большой выигрыш при таких затратах. В качестве решения предлагается переписать бальшую часть кода с использованием sse, что затронит логику вычислений, да и выходит за необходимые условия Задания.

С использованием Doxygen составлена документация к коду. Note: Как коворится, на вопрос "что" должен отвечать сам код, а документация должна отвечать на вопрос "почему". Но "почему" расписано на 14 страницах задания по машграфу и нету смысла заниматься копипастом.